package com.jingdianjichi.auth.domain.test;

import cn.dev33.satoken.secure.SaSecureUtil;

import java.util.HashMap;

public class 加密算法 {

    //对称加密 == 秘钥
    private static String key="123123123";

    //非对称加密,下面去生成了
    private static String publicKey;
    private static String privateKey;

    public static void main(String[] args) throws Exception {
        //要加密的密码是
        String password="123";

        /**
         * MD5加密,验证的时候就是直接把用户输入的和数据库做对比即可
         */
        System.out.println("MD5加密"+SaSecureUtil.md5(password));
        System.out.println("MD5加密加盐"+SaSecureUtil.md5BySalt(password, "salt"));//加盐md5,一般你破解不出来的

        /**
         * 对称加密
         */
        String aesEncrypt = SaSecureUtil.aesEncrypt(key, password);//加密  一般加密出来的都有===
        System.out.println("对称加密的解密"+SaSecureUtil.aesDecrypt(key, aesEncrypt));//解密的

        /**
         * 非对称加密
         */
        //获得公钥和私钥
        HashMap<String, String> keymap = SaSecureUtil.rsaGenerateKeyPair();

        //一般我们都是生成之后存下来的
        privateKey = keymap.get("private");
        publicKey  = keymap.get("public");

        String encrypt = SaSecureUtil.rsaEncryptByPublic(publicKey,password);                                   //公钥加密

        System.out.println("非对称加密的解密"+SaSecureUtil.rsaDecryptByPrivate(privateKey, encrypt));              //私钥解密


    }
}
